#define  _CRT_SECURE_NO_WARNINGS 1


#include <stdio.h>
#include <string.h>

//int main()
//{
//	/*char arr[] = "abcdef";
//	int i = 0;
//	for (i = 0; i < strlen(arr); i++)
//	{
//		printf("%c ", arr[i]);
//	}*/
//
//	int arr[] = { 1,2,3,4,5,6,7,8,9,0 };
//	int sz = sizeof(arr) / sizeof(arr[0]);
//	int i = 0;
//	for (i = 0; i < sz; i++)
//	{
//		printf("%d ", arr[i]);
//
//	}
//	return 0;
//}

//int main()
//{
//	int arr[] = { 1,2,3,4,5,6,7,8,9,10 };
//	int sz = sizeof(arr) / sizeof(arr[0]);
//	int i = 0;
//	for (i = 0; i < sz; i++)
//	{
//		printf("&arr[%d] = %p\n", i, &arr[i]);
//	}
//	return 0;
//}

//int main()
//{
//	//int arr[3][4] = { {1,2,3},{4.5} };
//	//int arr[] = { 1,2,3,4 };
//	int arr[][4] = { {1,2,3,4},{5,6,7,8} };
//	//char ch[5][6];
//
//	return 0;
//}

//int main()
//{
//	int arr[3][4] = { {1,2,3},{4,5} };
//	//1 2 3 0
//	//4 5 0 0
//	//0 0 0 0
//
//	int i = 0;
//	for (i = 0; i < 3; i++)
//	{
//		int j = 0;
//		for (j = 0; j < 4; j++)
//		{
//			printf("%d ", arr[i][j]);
//		}
//		printf("\n");
//
//	}
//	return 0;
//}

//int main()
//{
//	int arr[3][4] = { {1,2,3},{4,5} };
//	int i = 0;
//	for (i = 0; i < 3; i++)
//	{
//		int j = 0;
//		for (j = 0; j < 4; j++)
//		{
//			printf("&arr[%d][%d] = %p\n", i, j, &arr[i][j]);
//		}
//		printf("\n");
//
//	}
//	return 0;
//}

//int main()
//{
//	//& - 按2进制位与
//	/*int a = 3;
//	int b = 5;
//	int c = a & b;*/
//
//
//	//00000000000000000000000000000011
//	//00000000000000000000000000000101
//	//00000000000000000000000000000001
//	//printf("%d\n", c);
//	//| - 按2进制位或
//	//int a = 3;
//	//int b = 5;
//	//int c = a | b;
//	//printf("%d\n", c);
//	////00000000000000000000000000000011
//	////00000000000000000000000000000101
//	////00000000000000000000000000000111
//
//	//^- 按二进制位异或
//	//相同为0，相异为1
//
//	int a = 3;
//	int b = 5;
//	int c = a ^ b;
//	printf("%d\n", c);
//	//00000000000000000000000000000011
//	//00000000000000000000000000000101
//	//00000000000000000000000000000110
//
//	return 0;
//}

//int main()
//{
//	int a = 3;
//	int b = 5;
//	//int tmp = 0;//临时变量
//	printf("before: a=%d, b=%d\n", a, b);
//	/*tmp = a;
//	a = b;
//	b = tmp;*/
//
//	//加减法-可能会溢出
//	/*a = a + b;
//	b = a - b;
//	a = a - b;*/
//
//	//异或的方法
//	a = a ^ b;
//	b = a ^ b;
//	a = a ^ b;
//
//	printf("after: a=%d, b=%d\n", a, b);
//
//	return 0;
//}

//123

//int main()
//{
//	int num = 0;
//	int count = 0;
//	scanf("%d", &num);//3 - 011
//	int i = 0;
//	for (i = 0; i < 32; i++)
//	{
//		if (1 == ((num >> i) & 1))
//		{
//			count++;
//		}
//	}
//
//	printf("%d\n", count);
//
//	//32bit
//	//00000000000000000000000000000011
//	//00000000000000000000000000000001
//	//00000000000000000000000000000000
//	//统计num的补码中有几个1
//	/*while (num != 0)
//	{
//		if (num % 2 == 1)
//			count++;
//		num = num / 2;
//	}*/
//
//	return 0;
//}

//int main()
//{
//	int a = 10;
//	a = a + 2;
//	a += 2;//复合赋值符
//	a = a >> 1;
//	a >>= 1;
//
//	a = a & 1;
//	a &= 1;
//
//	return 0;
//}

//int main()
//{
//	int a = 0;
//	if (a)
//	{
//		printf("hehe\n");
//	}
//	if (!a)
//	{
//		printf("hehe\n");
//	}
//	//printf("%d\n", !a);
//
//	return 0;
//}

//int main()
//{
//	int a = -5;
//	a = -a;
//
//	return 0;
//}

//int main()
//{
//	int a = 10;
//	int* p = &a;//& - 取地址操作符
//	*p = 20;//解引用操作符
//
//	return 0;
//}

//int main()
//{
//	int a = 10;
//	char c = 'w';
//	char* p = &c;
//	int arr[10] = { 0 };
//	//sizeof计算的是所占内存所占空间的大小，单位是字节
//
//	printf("%d\n", sizeof(a));
//	printf("%d\n", sizeof a);
//
//	printf("%d\n", sizeof(int));
//	//printf("%d\n", sizeof int);
//
//
//	printf("%d\n", sizeof(c));
//	printf("%d\n", sizeof(char));
//
//	printf("%d\n", sizeof(p));
//	printf("%d\n", sizeof(char*));
//
//	printf("%d\n", sizeof(arr));
//	printf("%d\n", sizeof(int[10]));
//
//
//	return 0;
//}